﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DONGACS.Assembler.Base
{
    public interface IAssembler<TDto, TDomain>
    {
        /// <summary>
        /// The convert to business object list.
        /// </summary>
        /// <param name="dtos">The dtos.</param>
        /// <returns></returns>
        IList<TDomain> ConvertToBusinessObjectList(IList<TDto> dtos);

        /// <summary>
        /// The convert to data transfer object list.
        /// </summary>
        /// <param name="domains">The domains.</param>
        /// <returns></returns>
        IList<TDto> ConvertToDataTransferObjectList(IList<TDomain> domains);

        /// <summary>
        /// The convert to data transfer object.
        /// </summary>
        /// <param name="domain">The domain.</param>
        /// <returns></returns>
        TDto ConvertToDataTransferObject(TDomain domain);

        /// <summary>
        /// The convert to business object.
        /// </summary>
        /// <param name="dto">The dto.</param>
        /// <returns></returns>
        TDomain ConvertToBusinessObject(TDto dto);
    }
}
